package com.project.mapper;

import com.project.bean.StudentBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 学生持久接口
 */
public interface IStudentDao {
    /**
     * 按班级id查询学生人数
     * @param classId 班级id
     * @return 班级人数
     */
    int countByClass(Integer classId);

    /**
     * 按房间id查询学生人数
     * @param roomId 房间id
     * @return 房间的学生人数
     */
    int countByRoom(Integer roomId);

    /**
     * 按房间id查询学生集合，同时查询班级名称
     * @param roomId 房间id
     * @return 学生集合
     */
    List<StudentBean> findByRoom(int roomId);

    /**
     * 学生添加
     * @param student 学生对象
     */
    void studentInRoom(StudentBean student);

    /**
     * 学生退房（删除学生）
     * @param id 学生id
     */
    void delStudentInfo(Integer id);

    /**
     * 学生换房
     * @param studentId 学生id
     * @param roomId 房间id
     */
    void updateStudentRoom(@Param("studentId") Integer studentId,@Param("roomId") Integer roomId);

    /**
     * 按id查找学生，同时查询班级名称和房间地址
     * @param id 学生id
     * @return 学生对象
     */
    StudentBean findById(Integer id);

    /**
     * 动态条件条件查找学生,同时查询班级名称和房间地址
     * @param name 学生姓名
     * @param className 班级名
     * @param roomAddress 房间地址
     * @return 学生集合
     */
    List<StudentBean> findByItem(@Param("name") String name,@Param("className") String className,@Param("roomAddress") String roomAddress);
}
